package com.tms.pidan.controller;


import com.tms.pidan.common.utils.Result;
import com.tms.pidan.pojo.FastDFSFile;
import com.tms.pidan.util.FastDFSClient;
import io.seata.common.util.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;


import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;

@RestController
@RequestMapping("/attachment")
@CrossOrigin
public class FileController {

    @PostMapping("/upload")
    public Object upload(@RequestParam MultipartFile file) {
        try {
            //判断文件是否存在
            if (file==null){
                throw new RuntimeException("文件不存在1");
            }

            //获取文件完整名称
            String originalFilename=file.getOriginalFilename();
            if (StringUtils.isEmpty(originalFilename)){
                System.out.printf("文件不存在2");
            }
            //获取文件拓展名
            String extName=
                    originalFilename.substring(originalFilename.lastIndexOf(".")+1);
            //获取文件内容
            byte[] content=file.getBytes();
            //创建文件上传的封装实体类
            FastDFSFile fastDFSFile=new FastDFSFile(originalFilename,content,extName);
            //基于工具类进行文件上传，并接受返回参数 String【】
            String [] uploadResult=FastDFSClient.upload(fastDFSFile);
            //封装返回结果
            String url=
                    FastDFSClient.getTrackerUrl()+uploadResult[0]+"/"+uploadResult[1];
            if (url!=null){
                Map urlMap=new HashMap();
                urlMap.put("url",url);
                return Result.ok("文件上传成功！");
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return Result.error("文件上传失败");
    }
}
